package com.yc.d0316;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.FileInputStream;
import java.io.IOException;

@WebServlet("/upload/*")
public class GetUploadServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 获取资源地址
        final String uri = req.getRequestURI();
        // 提取文件名
        final String filename = uri.replaceAll(".+/upload/(.+)", "$1");
        // 设置返回的内容类型
        // html ==> text/html,  jpg ==> image/jpeg
        final String mimeType = req.getServletContext().getMimeType(filename);
        resp.setContentType(mimeType);
        // 将文件返回给浏览器
        // java.io 流
        String path = UploadImageServlet.IMAGE_PATH + filename;
        try(FileInputStream fis = new FileInputStream(path)){
            byte[] buffer = new byte[1024];
            int count;
            final ServletOutputStream out = resp.getOutputStream();
            while((count = fis.read(buffer))>-1){
                out.write(buffer,0,count);
            }
        }
    }
}
